home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #145 (1991-10)(Rhein-Sieg-Soft).zip / Franz PD Disk #145 (1991-10)(Rhein-Sieg-Soft).adf / Labelstar / LabelStar < prev    next >
Text File  |  1991-10-07  |  32KB  |  1,200 lines

  1. '                ***************************************
  2. '                **                                   **
  3. '                **   Druckerprogramm fuer Etiketten  **
  4. '                **              Epson                **
  5. '                **         geschrieben von           **
  6. '                **                                   **
  7. '                **          Andreas Lesch            **
  8. '                **         Leverkusen  1989          **
  9. '                **                                   **
  10. '                ***************************************
  11. LOCATE 10,14:PRINT "Moment Bitte......."
  12. CLEAR,30000&
  13. DEFINT a-z
  14.  
  15. DIM text$(30),drucktext$(30),unter(30),posi(30)
  16. DIM druckpos%(30),a$(71),druck$(71),ital(30),prop(30)
  17.  
  18. DECLARE FUNCTION AskSoftStyle& LIBRARY
  19. DECLARE FUNCTION SetSoftStyle& LIBRARY
  20.  
  21.  
  22. init:
  23.   teiler=1:xpos1=96:xpos2=112:xpos3=72:xpos4=112:posi=1:ita=53:i=1:di=1
  24.   index=1:such=3
  25.   suchstring$="den Nachnamen":Pfad$="LS.Daten/"
  26.  
  27.   ON MOUSE GOSUB maus
  28.   
  29. ' Pulldownmenu loeschen
  30. FOR i=1 TO 4
  31.   MENU i,0,0,""
  32. NEXT i
  33.  
  34. ON ERROR GOTO Fehler
  35. LIBRARY "graphics.library"
  36. Fehler=1
  37. ConfigOeffnen:
  38. OPEN Pfad$+"LS.Conf."FOR INPUT AS 3
  39.     INPUT #3,mmlang
  40.     INPUT #3,mmbreite
  41.     INPUT #3,leroben
  42.     INPUT #3,rerand
  43.     INPUT #3,lirand
  44.     INPUT #3,dis
  45.     INPUT #3,index
  46. CLOSE 3 
  47. altmmlang=mmlang 
  48. altmmbreite=mmbreite
  49. altleroben=leroben
  50. altrerand=rerand
  51. altlirand=lirand
  52. altdis=dis
  53. Fehler=2
  54. LOCATE 10,14:PRINT SPACE$(30)
  55.  
  56. SCREEN 1,640,256,3,2        '***  Screen und Window oeffnen  ***
  57. WINDOW 5,"LabelStar  /\/\ by  Andreas Lesch  < Starsoft > /\/\",,16,1
  58. PALETTE 0,0,0,.1
  59.  
  60.   MENU 1,0,1,"Adressen"
  61.   MENU 1,1,1,"Öffnen  "
  62.   MENU 1,2,0,"Suchen  "
  63.   MENU 1,3,0,"Eingeben"
  64.   MENU 1,4,0,"Ändern  "
  65.   MENU 1,5,0,"Löschen "  
  66.   MENU 1,6,0,"Drucken "
  67.   
  68.   MENU 2,0,0,"  Index   "
  69.   MENU 2,1,1,"  KndNr.  "
  70.   MENU 2,2,1,"  Vorname "
  71.   MENU 2,3,1,"  Nachname"
  72.   MENU 2,4,1,"  Stasse  "
  73.   MENU 2,5,1,"  Ort     "
  74.   MENU 2,6,1,"  TelNr.  "
  75.     
  76.   ON MENU GOSUB Menue
  77.   
  78.   COLOR 1,0                 '***  Arbeitsblatt zeichnen      ***
  79.   CLS
  80.   COLOR 4,6
  81.   LOCATE 1,1  : PRINT "   Drucken   "
  82.   LOCATE 1,22 : PRINT " Korregieren "
  83.   LOCATE 1,44 : PRINT "  F-Tasten   "
  84.   LOCATE 1,67 : PRINT "     Ende    "
  85.   COLOR 7,4
  86.   LOCATE 25,27:PRINT "Halbe Geschwindigkeit ="
  87.   LOCATE 27,10
  88.   PRINT "  Italics = "
  89.   LOCATE 27,33
  90.   PRINT "  Bold    = "
  91.   LOCATE 27,58
  92.   PRINT "Underline = "
  93.   COLOR 5,7
  94.   LOCATE 29,12:PRINT "   Links    "
  95.   LOCATE 29,35:PRINT "   Mitte    "
  96.   LOCATE 29,60:PRINT "   Rechts   "
  97.   COLOR 2,1
  98.   LOCATE 25,50:PRINT " Aus"
  99.   LOCATE 27,22:PRINT "Aus"  
  100.   LOCATE 27,45:PRINT "Aus"  
  101.   LOCATE 27,70:PRINT "Aus"
  102.   LINE (85,222)-(187,233),3,b
  103.   
  104. eingabe:
  105.   GOSUB einstellen
  106.   i=leroben+1
  107.   WINDOW 5
  108.   weiter:
  109.   GOSUB format
  110.   COLOR 1,0
  111.   MENU 1,0,1
  112.   MENU ON
  113.   schreiben:
  114.     IF dis=1 THEN
  115.       COLOR 0,0
  116.       LOCATE 6,3
  117.       PRINT SPACE$(23)
  118.         IF i=3 THEN
  119.           COLOR 6,0
  120.           STYLE 0
  121.           LOCATE 6,3:PRINT "Diskettenoberseite--->"
  122.           STYLE sty
  123.         END IF
  124.     END IF        
  125.     COLOR 2,1
  126.    a:
  127.     COLOR 2,1  
  128.     MOUSE ON
  129.     LOCATE (i+3),41-INT(tebreite/2)
  130.     laeng%=(tebreite-(rerand+lirand))
  131.     IF dis=1 AND i=3 THEN laeng%=24
  132.     IF i=telang+1 THEN GOTO schreiben
  133.     col=1 
  134.     GOSUB einga
  135.     text$(i)=erg$
  136.     drucktext$(i)=derg$
  137.     unter(i)=unt
  138.     prop(i)=bold
  139.     ital(i)=ita           
  140.     GOSUB schreiben1 
  141.     i=i+1   
  142.   GOTO schreiben 
  143.    
  144.   schreiben1:  
  145.     LOCATE (i+3),41-INT(tebreite/2)
  146.     STYLE 0
  147.     PRINT SPACE$(LEN(text$(i)))
  148.     IF staus=0 THEN STYLE sty       
  149.     COLOR 2,1
  150.     yPos=(i+3)
  151.     rerand1=rerand+adrdrucken
  152.     LOCATE yPos,41-INT(tebreite/2)+INT(lirand)
  153.     IF po=2 THEN LOCATE yPos,41-(INT(LEN(text$(i))/2))
  154.     IF po=3 THEN LOCATE yPos,41+INT(tebreite/2)-(rerand1+INT(LEN(text$(i)))-1)    
  155.     posi(i)=po
  156.     IF dis=1 AND i=3 THEN LOCATE 6,30
  157.     CALL SetDrMd&(WINDOW(8),0)
  158.     PRINT text$(i)
  159.     CALL SetDrMd&(WINDOW(8),1)
  160.     COLOR 0,0
  161.     STYLE 0
  162.     GOSUB box
  163.     STYLE sty
  164.     COLOR 2,1
  165.   RETURN
  166.  
  167.  
  168.  
  169. format:
  170.   LINE (0,20)-(630,190),0,bf 
  171.   LINE (320-(INT(tebreite*8/2)+1),22)-(320+(INT(tebreite*8/2)+3),25+(telang*8)),1,bf           
  172. box:
  173.   LINE (320+(INT(tebreite*8/2)+3),22)-(630,25+(telang*8)),0,bf           
  174. RETURN
  175.  
  176. drucken:
  177.   COLOR 1,0
  178.   STYLE 0
  179.   anz$="1" 
  180.   IF adrdrucken=0 THEN LOCATE 2,1 : INPUT "Kopien ",anz$
  181.   anzahlkopie=VAL(anz$)  
  182.   IF anzahlkopie<1 THEN
  183.     STYLE 0
  184.     LOCATE 2,1 : PRINT SPACE$(10);
  185.     STYLE sty                                    
  186.     a$(1)=""
  187.     GOTO a
  188.   END IF
  189.   STYLE sty
  190.   OPEN "par:" FOR OUTPUT AS 1 
  191.     zeilen=i
  192.     IF ler<0 THEN ler=0
  193.     PRINT #1,CHR$(27);CHR$(82);CHR$(2);              'Deutscher Zeichensatz
  194.     PRINT #1,CHR$(27);CHR$(115);CHR$(halbg);         'Halbe Geschwindigkeit
  195.     FOR j=1 TO INT(anzahlkopie)
  196.       FOR k=0 TO leroben
  197.         drucktext$(k)=" "
  198.       NEXT k 
  199.       FOR k=zeilen TO telang
  200.         drucktext$(k)=" "
  201.       NEXT k                            
  202.       FOR i=1 TO telang+1
  203.         rerand1=rerand+adrdrucken 
  204.         IF posi(i)=1 THEN druckpos%(i)=lirand
  205.         IF posi(i)=2 THEN druckpos%(i)=INT((tebreite/2)-(INT(LEN(text$(i))/2)))
  206.         IF posi(i)=3 THEN druckpos%(i)=INT(tebreite-(rerand1+LEN(text$(i)))+1)
  207.         PRINT #1,CHR$(27);CHR$(120);CHR$(cod);           'NLQ
  208.         PRINT #1,CHR$(27);CHR$(45);CHR$(unter(i));       'Unterstreichen
  209.         PRINT #1,CHR$(27);CHR$(112);CHR$(prop(i));       'Proportial
  210.         PRINT #1,CHR$(27);CHR$(ital(i));                 'Italics
  211.         PRINT #1,CHR$(27);CHR$(108);CHR$(druckpos%(i));  'Linker Rand 
  212.         IF dis=1 AND i=3 THEN
  213.           PRINT #1,CHR$(27);CHR$(108);CHR$(0);
  214.           PRINT #1,CHR$(27);CHR$(83);CHR$(0);            'Indexmodus ein
  215.           IF j=1 THEN
  216.             drucktext$(3)="_  "+drucktext$(3)+SPACE$(24-LEN(drucktext$(3)))+"_"
  217.           END IF
  218.         END IF                
  219.         PRINT #1,drucktext$(i)
  220.         IF dis=1 AND i=3 THEN PRINT #1,CHR$(27);CHR$(84);  'Indexmodus aus
  221.       NEXT i
  222.     NEXT j
  223.   CLOSE 1   
  224.   FOR i=1 TO 30
  225.     drucktext$(i)=""
  226.     text$(i)=""
  227.   NEXT i
  228.   IF adrdrucken=1 THEN RETURN
  229.   STYLE 0 
  230.   LOCATE 2,1:PRINT SPACE$(10)
  231.   STYLE sty 
  232.   GOSUB format
  233.   i=leroben+1
  234. GOTO schreiben
  235.  
  236. ende:
  237.   WINDOW 3,,(244,52)-(388,92),16,1
  238.   COLOR 6,4                         
  239.   CLS
  240.   PRINT "Programm beenden?"
  241.   COLOR 3,4 : PRINT STRING$(17,"-") : COLOR 5,4
  242.   PRINT 
  243.   PRINT "  JA       NEIN  " :                          ' 7 leerstellen
  244.   LINE (8,20)-(38,36),3,b : LINE (80,20)-(128,36),3,b
  245.   controlle:  
  246.     WHILE MOUSE(0)<1:WEND      
  247.       dummy=MOUSE(0) : x=MOUSE(1) : y=MOUSE(2)
  248.       IF y>19 AND y<37 AND x>7 AND x<39 THEN
  249.         LINE (8,20)-(38,36),3,bf
  250.         FOR ton=250 TO 10 STEP -25
  251.           SOUND 349,1,ton
  252.         NEXT
  253.         WINDOW CLOSE 3 
  254.         MENU RESET
  255.         SCREEN CLOSE 1     
  256.         SYSTEM
  257.       END IF
  258.       IF y>19 AND y<37 AND x>79 AND x<129 THEN
  259.         LINE (80,20)-(128,36),3,bf
  260.         FOR x=250 TO 10 STEP -25
  261.           SOUND 329,1,x
  262.         NEXT          
  263.         WINDOW CLOSE 3
  264.         RETURN a
  265.       END IF
  266.   GOTO controlle 
  267.      
  268. einstellen:
  269.   LINE (320-(INT(tebreite*8/2)),22)-(320+(INT(tebreite*8/2)),25+(telang*8)),0,bf  
  270.   WINDOW 2,"    Etikettenformat   ",(200,40)-(440,160),0,1
  271.   COLOR 2,1
  272.   CLS
  273.   controlle1:
  274.   tebreite=INT(mmbreite/2.5)
  275.   telang =INT(mmlang/4.375)
  276.   LOCATE 2,1:PRINT "Etikettenbreite ---->"tebreite
  277.   LOCATE 3,1:PRINT "Etikettenl"CHR$(228)"nge  ---->"telang
  278.   LOCATE 4,1:PRINT "Linker Rand  ------->"lirand
  279.   LOCATE 5,1:PRINT "Rechter Rand ------->"rerand 
  280.   LOCATE 6,1:PRINT "Leerzeilen von oben >"leroben
  281.   LOCATE 7,1:PRINT "Breite in mm ------->"mmbreite
  282.   LOCATE 8,1:PRINT "Höhe in mm --------->"mmlang
  283.   
  284.   LOCATE 10,1  : PRINT "Druck ->"
  285.   LOCATE 10,10 : PRINT "Draft      NLQ"     '6* Space
  286.   IF dis=1 THEN LINE (0,86)-(130,96),3,b
  287.   LINE (204,102)-(228,112),3,b
  288.   LINE (xpos3,71)-(xpos4,80),3,b
  289.   LOCATE 12,2  : PRINT "3,5' Etiketten"
  290.   LOCATE 12,25 : PRINT "Test"
  291.   LOCATE 14,27 : PRINT "OK"
  292.   LOCATE 14,2  : PRINT "Save"
  293.   LINE (6,102)-(42,112),3,b
  294.     
  295.     WHILE MOUSE(0)<1:WEND
  296.     dummy=MOUSE(0) : x=MOUSE(1) : y=MOUSE(2)               
  297.       IF x<201 THEN
  298.         IF y>7 AND y<17 AND dis=0 THEN
  299.           LOCATE 2,23 : PRINT SPACE$(9)
  300.           LOCATE 2,23 : LINE INPUT;teb$
  301.           IF LEN(teb$)>4 THEN GOTO controlle1
  302.           tebreite=VAL(teb$)
  303.           IF tebreite>70 THEN tebreite=70          
  304.           IF tebreite<1 THEN tebreite=2
  305.           mmbreite=tebreite*2.5
  306.         END IF
  307.         IF y>15 AND y<25 AND dis=0 THEN
  308.           LOCATE 3,23 : PRINT SPACE$(9)
  309.           LOCATE 3,23 : LINE INPUT;tela$
  310.           telang=VAL(tela$)
  311.           IF LEN(tela$)>4 THEN GOTO controlle1
  312.           IF telang>20 THEN telang=20
  313.           IF telang<1 THEN telang=1
  314.           mmlang=telang*4.375
  315.         END IF
  316.         IF y>23 AND y<33 THEN
  317.           LOCATE 4,23 : PRINT SPACE$(9)
  318.           LOCATE 4,23 : LINE INPUT;lira$
  319.           IF LEN(lira$)>4 THEN GOTO controlle1
  320.           lirand=VAL(lira$)
  321.           IF lirand>tebreite THEN
  322.             BEEP
  323.             lirand=tebreite-1
  324.             GOTO controlle1
  325.           END IF
  326.           IF lirand <0 OR lirand+rerand>=tebreite THEN lirand=0 
  327.           rand=lirand+rerand
  328.         END IF
  329.         IF y>31 AND y<41 THEN
  330.           LOCATE 5,23 : PRINT SPACE$(9)
  331.           LOCATE 5,23 : LINE INPUT;rera$
  332.           IF LEN(rera$)>4 THEN GOTO controlle1
  333.           rerand=VAL(rera$)
  334.           IF lirand+rerand>=tebreite THEN rerand=0
  335.           IF rerand>tebreite THEN
  336.             BEEP
  337.             rerand=tebreite-1
  338.             GOTO controlle1
  339.           END IF
  340.           IF rerand <0 THEN rerand=0          
  341.           rand=rerand+lirand
  342.         END IF
  343.         IF y>39 AND y<49 AND dis=0 THEN
  344.           LOCATE 6,23 : PRINT SPACE$(9)
  345.           LOCATE 6,23 : LINE INPUT;lero$
  346.           IF LEN(lero$)>4 THEN GOTO controlle1
  347.           leroben=VAL(lero$)
  348.           IF leroben>telang THEN leroben=telang 
  349.           IF leroben<0 THEN leroben=0 
  350.         END IF
  351.         IF y>48 AND y<58 AND dis=0 THEN
  352.           LOCATE 7,23 : PRINT SPACE$(9)
  353.           LOCATE 7,23 : LINE INPUT;tebmm$
  354.           IF LEN(tebmm$)>4 THEN GOTO controlle1
  355.           mmbreite=VAL(tebmm$)
  356.           IF mmbreite>175 THEN mmbreite=175
  357.           IF mmbreite<3 THEN mmbreite=3
  358.           LOCATE 7,22:PRINT SPACE$(9)
  359.         END IF
  360.         IF y>57 AND y<67 AND dis=0 THEN
  361.           LOCATE 8,23 : PRINT SPACE$(9)
  362.           LOCATE 8,23 : LINE INPUT;telmm$
  363.           IF LEN(telmm$)>4 THEN GOTO controlle1
  364.           mmlang=VAL(telmm$)
  365.           IF mmlang>100 THEN mmlang=100
  366.           IF mmlang<5 THEN mmlang=5
  367.           LOCATE 8,22:PRINT SPACE$(9)
  368.         END IF                   
  369.       END IF
  370.       IF y>101 AND y<113 THEN
  371.         IF x>203 AND x<229 THEN          '** OK **
  372.           WINDOW CLOSE 2 
  373.           WINDOW 5
  374.           FOR j=0 TO i
  375.             text$(j)=""
  376.             drucktext$(j)=""
  377.           NEXT j  
  378.           GOSUB format
  379.           RETURN
  380.         END IF
  381.         IF x>5 AND x<43 THEN 
  382.           LINE (6,102)-(42,112),3,bf
  383.           GOSUB conf                     '** Save
  384.           LINE (6,102)-(42,112),2,bf
  385.           LINE (6,102)-(42,112),3,b
  386.           LOCATE 14,27 : PRINT "OK"
  387.         END IF            
  388.       END IF
  389.       IF y>85 AND y<97 THEN
  390.         IF x>188 AND x<229 THEN          '** Test
  391.           OPEN "par:" FOR OUTPUT AS 1
  392.             FOR j=1 TO telang
  393.             IF dis=1 AND j=3 THEN
  394.               PRINT #1,CHR$(27);CHR$(83);CHR$(1);      
  395.             END IF
  396.               PRINT #1,STRING$(tebreite,"X")
  397.             IF dis=1 AND j=3 THEN
  398.               PRINT #1,CHR$(27);CHR$(84);              
  399.             END IF              
  400.             NEXT j  
  401.             PRINT #1," "
  402.           CLOSE 1
  403.         END IF      
  404.         IF x<131 THEN                    '** 3,5'
  405.           IF dis=0 THEN
  406.             dis=1
  407.             LINE (0,86)-(130,96),3,b
  408.             leroben=2:mmlang=70:mmbreite=70
  409.             GOTO controlle1
  410.           END IF
  411.           IF dis=1 THEN
  412.             dis=0
  413.             LINE (0,86)-(130,96),1,b 
  414.           END IF
  415.         END IF
  416.       END IF      
  417.       IF y>70 AND y<81 THEN
  418.         IF x>71 AND x<112 THEN
  419.           LINE (72,71)-(112,80),3,b 
  420.           LINE (160,71)-(184,80),1,b
  421.           xpos3=72 : xpos4=112
  422.           cod=0
  423.         END IF
  424.         IF x>159 AND x<185 THEN
  425.           LINE (72,71)-(112,80),1,b 
  426.           LINE (160,71)-(184,80),3,b
  427.           xpos3=160 : xpos4=184
  428.           cod=1
  429.         END IF        
  430.       END IF    
  431.   GOTO controlle1 
  432.  
  433. conf:
  434.           OPEN Pfad$+"LS.Conf."FOR OUTPUT AS 3
  435.             PRINT #3,mmlang
  436.             PRINT #3,mmbreite
  437.             PRINT #3,leroben
  438.             PRINT #3,rerand
  439.             PRINT #3,lirand
  440.             PRINT #3,dis
  441.             PRINT #3,index
  442.           CLOSE 3  
  443. RETURN
  444.  
  445. korr:
  446.   WINDOW 4,"Korrektur",(200,40)-(440,90),0,1
  447.   COLOR 4,6
  448.   CLS
  449.   PRINT  
  450.   PRINT "neues Format   Eingabe löschen"
  451.   PRINT
  452.   LOCATE 4,11:PRINT "abbrechen"
  453.     controlle2:
  454.     WHILE MOUSE(0)<1 : WEND
  455.       dummy=MOUSE(0)
  456.       x=MOUSE(1) : y=MOUSE(2)
  457.       IF x>0 AND x<97 AND y>7 AND y<17 THEN
  458.         WINDOW CLOSE 4
  459.         WINDOW 5
  460.         GOTO eingabe
  461.       END IF
  462.       IF x>118 AND x<241 AND y>7 AND y<17 THEN
  463.         WINDOW CLOSE 4
  464.         WINDOW 5
  465.         i=leroben+1
  466.         LINE (320-(INT(tebreite*8/2)),22)-(320+(INT(tebreite*8/2)),25+(telang*8)),1,bf        
  467.         FOR j=1 TO 30
  468.           text$(j)=""
  469.           drucktext$(j)=""
  470.         NEXT j  
  471.         GOTO schreiben
  472.       END IF
  473.       IF x>79 AND x<153 AND y>23 AND y<33 THEN     
  474.         WINDOW CLOSE 4
  475.         WINDOW 5
  476.         GOTO a
  477.       END IF  
  478.   GOTO controlle2 
  479.  
  480. FTasten:
  481.   lei$=Pfad$+"F-Tasten  "+STR$(laeng%)+" Zeichen"
  482.   WINDOW 4,lei$,(200,40)-(440,90),0,1
  483.   COLOR 4,6
  484.   CLS
  485.   PRINT  
  486.   PRINT "     Laden       Belegen      "
  487.   PRINT
  488.   LOCATE 4,11:PRINT "abbrechen"
  489.   LINE (24,7)-(97,17),2,b
  490.   LINE (126,7)-(198,17),2,b
  491.   LINE (72,23)-(161,33),2,b                
  492.     controlle3:
  493.     WHILE MOUSE(0)<1 : WEND
  494.       dummy=MOUSE(0)
  495.       x=MOUSE(1) : y=MOUSE(2)
  496.       IF x>23 AND x<97 AND y>7 AND y<17 THEN       'Laden
  497.         GOSUB DateiWindow
  498.         Fehler=3
  499.         OPEN Pfad$+Datnam$ FOR INPUT AS 2
  500.           FOR ta =0 TO 9
  501.             INPUT #2,ftext$(ta)
  502.             INPUT #2,fdrucktext$(ta)
  503.           NEXT ta 
  504.         CLOSE 2        
  505.         GOSUB Dateizu  
  506.         GOTO a         
  507.       END IF
  508.       IF x>125 AND x<199 AND y>7 AND y<17 THEN     'Belegen
  509.         WINDOW CLOSE 4
  510.         GOSUB Ftastschr
  511.         FOR ta=0 TO 9
  512.           LOCATE ta+1,6 
  513.           col=0                  
  514.           GOSUB einga
  515.           ftext$(ta)=erg$
  516.           fdrucktext$(ta)=derg$ 
  517.           IF ftext$(ta)=CHR$(13) THEN 
  518.             ftext$(ta)=altftext$(ta)
  519.             fdrucktext$(ta)=altfdrucktext$(ta)
  520.           END IF                                       
  521.         NEXT ta 
  522.         LOCATE 13,1
  523.         PRINT "Save?"
  524.         PRINT "J/N"
  525.         zurueck:                
  526.         WHILE jn$=""
  527.         jn$=INKEY$
  528.         IF jn$="n" OR jn$="N" THEN
  529.           jn$=""
  530.           WINDOW CLOSE 6
  531.           WINDOW 5
  532.           GOTO a 
  533.         END IF
  534.         IF jn$="j" OR jn$="J" THEN
  535.           jn$=""
  536.           GOSUB DateiWindow
  537.           OPEN Pfad$+Datnam$ FOR OUTPUT AS 2
  538.             FOR ta =0 TO 9
  539.               PRINT #2,ftext$(ta)
  540.               PRINT #2,fdrucktext$(ta)
  541.             NEXT ta 
  542.           CLOSE 2
  543.           GOSUB Dateizu  
  544.           GOTO a 
  545.         END IF        
  546.         WEND 
  547.       jn$=""   
  548.       GOTO zurueck    
  549.       END IF
  550.       
  551.       IF x>72 AND x<162 AND y>23 AND y<33 THEN     'Abbrechen
  552.         WINDOW CLOSE 4
  553.         WINDOW 5
  554.         GOTO a
  555.       END IF  
  556.   GOTO controlle3 
  557. GOTO schreiben
  558.  
  559. Fehler:
  560. IF ERR=53 THEN
  561.   IF Fehler =0 THEN 
  562.     BEEP
  563.     CLS
  564.     LOCATE 13,10 : PRINT "Keine Graphics.bmap vorhanden "
  565.     LOCATE 15,10 : PRINT "Programm wird beendet "
  566.     LOCATE 17,10 : PRINT "Taste drÜcken"
  567.     SLEEP:SLEEP:SLEEP
  568.     SYSTEM
  569.   END IF
  570.   IF Fehler=1 THEN 
  571.     Fehler=4
  572.     CLOSE 3
  573.     GOSUB conf
  574.     RESUME ConfigOeffnen
  575.   END IF    
  576.   IF Fehler=3 THEN
  577.     BEEP
  578.     WINDOW 7
  579.     CLS
  580.     PRINT "Datei nicht vorhanden"
  581.     FOR warte =1 TO 12000 :NEXT warte
  582.     GOSUB Dateizu
  583.   END IF
  584. END IF  
  585. RESUME a
  586.   
  587. Ftastschr:
  588.   WINDOW 6,"F-Tasten Belegen",(0,10)-((laeng%*8)+39,130),0,1
  589.   FOR ta=0 TO 8
  590.     PRINT "F";ta+1;":"
  591.   NEXT ta
  592.   PRINT "F 10:"
  593.   FOR ta=0 TO 9
  594.     altftext$(ta)=ftext$(ta)
  595.     altfdrucktext$(ta)=fdrucktext$(ta)
  596.     LOCATE ta+1,6:PRINT ftext$(ta)
  597.   NEXT ta  
  598. RETURN  
  599.  
  600. DateiWindow:
  601.   WINDOW 7,"Geben Sie den Dateinamen ein:",(0,133)-(230,150),0,1
  602.   LINE INPUT;Datn$
  603.   Datnam$=LEFT$(Datn$+".FTB",13)
  604. RETURN  
  605.  
  606. Dateizu:
  607.   WINDOW CLOSE 6
  608.   WINDOW CLOSE 7
  609.   WINDOW 5
  610. RETURN  
  611.   
  612. maus:
  613.       dummy=MOUSE(0)
  614.       x=MOUSE(1) : y=MOUSE(2)            
  615.       IF y>0 AND y<10 THEN
  616.         IF x>0 AND x<106 THEN GOTO drucken
  617.         IF x>168 AND x<275 THEN GOTO korr
  618.         IF x>344 AND x<451 THEN GOTO FTasten
  619.         IF x>523 AND x<630 THEN GOSUB ende
  620.       END IF
  621.       IF y>191 AND y<201 THEN
  622.         IF x>206 AND x<385 THEN 
  623.           IF halbg=0 THEN 
  624.             halbg=1
  625.             STYLE 0
  626.             LOCATE 25,51:PRINT "Ein"
  627.             STYLE sty
  628.             GOSUB loca
  629.             RETURN
  630.           END IF  
  631.           IF halbg=1 THEN
  632.             halbg=0
  633.             STYLE 0
  634.             LOCATE 25,51:PRINT "Aus"
  635.             STYLE sty
  636.             GOSUB loca
  637.           END IF  
  638.         END IF
  639.       END IF    
  640.       IF y>207 AND y<217 THEN
  641.         IF x>71 AND x<225 THEN
  642.           IF ita=52 THEN
  643.             ita=53:sty=sty-4
  644.             STYLE 0
  645.             LOCATE 27,22:PRINT "Aus"
  646.             GOSUB loca
  647.             STYLE sty
  648.             RETURN
  649.           END IF
  650.           IF ita=53 THEN
  651.             ita=52:sty=sty+4
  652.             STYLE 0
  653.             LOCATE 27,22:PRINT "Ein"
  654.             GOSUB loca
  655.             STYLE sty
  656.             RETURN
  657.           END IF
  658.         END IF
  659.         
  660.         IF x>255 AND x<369 THEN
  661.           IF bold=1 THEN
  662.             bold=0:sty=sty-2
  663.             STYLE 0
  664.             LOCATE 27,45:PRINT "Aus"
  665.             GOSUB loca
  666.             STYLE sty
  667.             RETURN
  668.           END IF
  669.           IF bold=0 THEN
  670.             bold=1:sty=sty+2
  671.             STYLE 0
  672.             LOCATE 27,45:PRINT "Ein"
  673.             GOSUB loca
  674.             STYLE sty
  675.             RETURN
  676.           END IF                     
  677.         END IF
  678.                       
  679.         IF x>455 AND x<553 THEN
  680.           IF unt=1 THEN 
  681.             unt=0:sty=sty-1
  682.             STYLE 0            
  683.             LOCATE 27,70:PRINT "Aus"
  684.             GOSUB loca
  685.             STYLE sty
  686.             RETURN
  687.           END IF 
  688.           IF unt=0 THEN 
  689.             unt=1:sty=sty+1
  690.             STYLE 0
  691.             LOCATE 27,70:PRINT "Ein"
  692.             GOSUB loca
  693.             STYLE sty
  694.           END IF 
  695.         END IF          
  696.       END IF
  697.       IF y>222 AND y<233 THEN
  698.         IF x>85 AND x<187 THEN
  699.           LINE (85,222)-(187,233),3,b
  700.           LINE (270,222)-(371,233),0,b
  701.           LINE (470,222)-(570,233),0,b
  702.           po=1 
  703.         END IF 
  704.         IF x>270 AND x<371 THEN
  705.           LINE (85,222)-(187,233),0,b
  706.           LINE (270,222)-(371,233),3,b
  707.           LINE (470,222)-(570,233),0,b
  708.           po=2
  709.         END IF     
  710.         IF x>470 AND x<570 THEN
  711.           LINE (85,222)-(187,233),0,b
  712.           LINE (270,222)-(371,233),0,b
  713.           LINE (470,222)-(570,233),3,b
  714.           po=3   
  715.         END IF
  716.       END IF            
  717.   RETURN
  718.  
  719. loca:
  720.   LOCATE i+3,41-INT(tebreite/2)
  721. RETURN  
  722.  
  723. Menue:                     
  724.   men=MENU(0):mep=MENU(1)
  725.   IF men=1 THEN
  726.     IF mep=1 THEN
  727.       OPEN "r",#4,Pfad$+"LS.Adressen",145
  728.       FIELD #4,10 AS adr$(1),30 AS adr$(2),30 AS adr$(3),30 AS adr$(4),30 AS adr$(5),15 AS adr$(6)          
  729.       MENU 1,1,0 
  730.       FOR me=2 TO 6
  731.         MENU 1,me,1
  732.       NEXT me  
  733.       MENU 2,0,1
  734.     END IF
  735.       
  736.     IF mep=2 THEN
  737.       FOR me=2 TO 6
  738.         MENU 1,me,0
  739.       NEXT me      
  740.       lei$="Geben Sie "+suchstring$+" ein:"
  741.       WINDOW 7,lei$,(0,183)-(330,210),0,1
  742.       LINE INPUT;naname$
  743.       IF naname$="" THEN
  744.         FOR me=2 TO 6
  745.           MENU 1,me,1
  746.         NEXT me        
  747.         WINDOW CLOSE 7
  748.         WINDOW OUTPUT 5
  749.         RETURN
  750.       END IF
  751.       IF naname$="*" THEN naname$=" "
  752.       l=0 
  753.       AdressenSuchen:
  754.         l=l+1                      
  755.         GET #4,l
  756.       IF INSTR(1,UCASE$(adr$(such)),UCASE$(naname$))=0 AND l<index THEN GOTO AdressenSuchen
  757.       IF INSTR(1,UCASE$(adr$(such)),UCASE$(naname$))<>0 THEN
  758.         WINDOW OUTPUT 5
  759.         GOSUB format
  760.         GOSUB Adrkorr
  761.         FOR zu=1 TO 6
  762.           saveadr$(zu)=helpadr$(zu)
  763.         NEXT zu  
  764.         helpadr$(7)=helpadr$(2)+" "+helpadr$(3)
  765.         IF LEN(helpadr$(7)) > (tebreite-lirand-rerand) THEN
  766.           helptextlaenge=(tebreite-lirand-rerand-2)-LEN(helpadr$(3))
  767.           IF helptextlaenge<0 THEN helptextlaenge=0
  768.           helpadr$(2)=LEFT$(helpadr$(2),helptextlaenge)+"."
  769.           helpadr$(7)=helpadr$(2)+" "+helpadr$(3)
  770.         END IF 
  771.         helpadr$(2)=helpadr$(7)
  772.         helpadr$(3)=helpadr$(4)
  773.         helpadr$(4)=helpadr$(5)
  774.         helpadr$(5)=helpadr$(6)
  775.         adrdrucken=1
  776.         i=leroben+1
  777.         FOR in=1 TO 4          
  778.           drucktext$(i)=LEFT$(helpadr$(in),tebreite-lirand-rerand)
  779.           GOSUB DrSonderzeichen
  780.           text$(i)=LEFT$(helpadr$(in),tebreite-lirand-rerand)
  781.           staus=1
  782.           GOSUB schreiben1
  783.           staus=0
  784.           i=i+1
  785.         NEXT in
  786.         FOR zu=1 TO 6
  787.           helpadr$(zu)=saveadr$(zu)
  788.         NEXT zu          
  789.         adrdrucken=0
  790.         WINDOW OUTPUT 7
  791.         CLS
  792.         LOCATE 2,1:PRINT "Weiter nach ";naname$;" Suchen (J/N)"
  793.         warte$=""
  794.         WHILE warte$="":warte$=INKEY$:WEND
  795.         IF warte$="j" OR warte$="J" THEN 
  796.           CLS
  797.           GOTO AdressenSuchen
  798.         END IF   
  799.         FOR me=2 TO 6
  800.           MENU 1,me,1
  801.         NEXT me  
  802.         WINDOW CLOSE 7
  803.         WINDOW 5 
  804.         GOSUB loca
  805.         col=1              
  806.       ELSE
  807.         LOCATE 1,1
  808.         BEEP
  809.         PRINT "Adresse nicht in der Datei"
  810.         PRINT "Linke Maustaste drÜcken"
  811.         SLEEP:SLEEP:SLEEP
  812.         WINDOW CLOSE 7
  813.         WINDOW 5
  814.         FOR me=2 TO 6
  815.           MENU 1,me,1
  816.         NEXT me  
  817.         i=leroben+1
  818.         GOSUB format
  819.         GOSUB loca
  820.         col=1
  821.         RETURN  
  822.       END IF
  823.     RETURN   
  824.    END IF
  825.         
  826.     IF mep=3 THEN
  827.       adrtitel$="Adressen eingeben"
  828.       GOSUB AdrListe
  829.       altlaeng=laeng%
  830.       AdrEing:
  831.         eingindex=index
  832.         LOCATE 11,1:PRINT index-1;" Adressen in der Datei"
  833.         LOCATE 12,25:PRINT "Abbrechen mit < * >"
  834.         col=0
  835.         laeng%=14
  836.         LOCATE 1,13:GOSUB einga
  837.         LOCATE 12,25:PRINT SPACE$(20)
  838.         IF erg$="*"+CHR$(13) THEN
  839.           laeng%=altlaeng
  840.           WINDOW CLOSE 6
  841.           WINDOW 5
  842.           col=1
  843.           GOTO AufConf
  844.         END IF  
  845.         IF erg$="" THEN erg$=CHR$(13)
  846.         IF LEN(erg$)=14 THEN erg$=erg$+CHR$(13)
  847.         eadr$(1)=erg$
  848.         FOR zaehler=2 TO 5
  849.           laeng%=29
  850.           LOCATE zaehler,13:GOSUB einga
  851.           IF erg$="" THEN erg$=CHR$(13)
  852.           IF LEN(erg$)=29 THEN erg$=erg$+CHR$(13)
  853.           eadr$(zaehler)=erg$
  854.         NEXT zaehler  
  855.         laeng%=14
  856.         LOCATE 6,13:GOSUB einga
  857.         IF erg$="" THEN erg$=CHR$(13)
  858.         IF LEN(erg$)=14 THEN erg$=erg$+CHR$(13)
  859.         eadr$(6)=erg$
  860.         col=1
  861.         datler=0
  862.         FOR tu=1 TO 6
  863.           IF eadr$(tu)<>CHR$(13) THEN datler=1
  864.         NEXT tu
  865.         IF datler=1 THEN
  866.           GOSUB AufDatei 
  867.           index=index+1
  868.         END IF  
  869.         LOCATE 11,1:PRINT index-1;" Adressen in der Datei"
  870.         LOCATE 9,13:PRINT "Weitere eingaben? (J/N)"
  871.         warte$=""
  872.         WHILE warte$=""
  873.         warte$=INKEY$
  874.         IF warte$="J" OR warte$="j" OR warte$=CHR$(13) THEN
  875.           LOCATE 9,13:PRINT SPACE$(25)
  876.           FOR t=1 TO 6
  877.             LOCATE t,13:PRINT SPACE$(30)
  878.           NEXT t  
  879.           GOTO AdrEing
  880.         END IF  
  881.         WEND
  882.         AufConf:
  883.         OPEN Pfad$+"LS.Conf."FOR OUTPUT AS 3
  884.           PRINT #3,altmmlang
  885.           PRINT #3,altmmbreite
  886.           PRINT #3,altleroben
  887.           PRINT #3,altrerand
  888.           PRINT #3,altlirand
  889.           PRINT #3,altdis
  890.           PRINT #3,index
  891.         CLOSE 3    
  892.         laeng%=altlaeng
  893.         WINDOW CLOSE 6
  894.         WINDOW 5
  895.         GOSUB loca
  896.     END IF
  897.     
  898.     IF mep=4 THEN
  899.       adrtitel$="Adresse ändern"
  900.       GOSUB AdrListe
  901.       datler=0
  902.       FOR zaehler=1 TO 6
  903.         LOCATE zaehler,13:PRINT helpadr$(zaehler)
  904.         IF helpadr$(zaehler)<>"" THEN datler=1
  905.       NEXT zaehler
  906.       IF datler=0 THEN 
  907.         BEEP
  908.         LOCATE 10,5:PRINT "Erst Adresse << Suchen >>"
  909.         LOCATE 11,5:PRINT "Linke Maustaste drÜcken"
  910.         WHILE MOUSE(0)<>-1:WEND
  911.         WINDOW CLOSE 6
  912.         WINDOW 5
  913.         RETURN
  914.       END IF
  915.       LOCATE 10,5 : PRINT "Abbrechen mit *"    
  916.       col=0
  917.       altlaeng=laeng%
  918.       laeng%=14
  919.       normalPrint=1
  920.       LOCATE 1,13:GOSUB einga
  921.       LOCATE 12,25:PRINT SPACE$(20)
  922.       IF erg$="*"+CHR$(13) THEN
  923.         laeng%=altlaeng
  924.         normalPrint=0
  925.         WINDOW CLOSE 6
  926.         WINDOW 5
  927.         RETURN
  928.       END IF  
  929.       IF erg$=""+CHR$(13) THEN erg$=helpadr$(1)+CHR$(13)
  930.       IF LEN(erg$)=14 THEN erg$=erg$+CHR$(13)
  931.       eadr$(1)=erg$
  932.       FOR zaehler=2 TO 5
  933.         laeng%=29
  934.         LOCATE zaehler,13:GOSUB einga
  935.         IF erg$=""+CHR$(13) THEN erg$=helpadr$(zaehler)+CHR$(13)
  936.         IF LEN(erg$)=29 THEN erg$=erg$+CHR$(13)
  937.         eadr$(zaehler)=erg$
  938.       NEXT zaehler  
  939.       laeng%=14
  940.       LOCATE 6,13:GOSUB einga
  941.       IF erg$=""+CHR$(13) THEN erg$=helpadr$(6)+CHR$(13)
  942.       IF LEN(erg$)=14 THEN erg$=erg$+CHR$(13)
  943.       eadr$(6)=erg$
  944.       normalPrint=0
  945.       eingindex=l
  946.       GOSUB AufDatei
  947.       WINDOW CLOSE 6
  948.       WINDOW 5
  949.       laeng%=altlaeng
  950.       RETURN     
  951.     END IF
  952.     
  953.     IF mep=5 THEN
  954.       adrtitel$="Adresse löschen"
  955.       GOSUB AdrListe
  956.       datler=0
  957.       FOR zaehler=1 TO 6
  958.         LOCATE zaehler,13:PRINT helpadr$(zaehler)
  959.         IF helpadr$(zaehler)<>"" THEN datler=1
  960.       NEXT zaehler
  961.       IF datler=0 THEN 
  962.         BEEP
  963.         LOCATE 10,5:PRINT "Erst Adresse << Suchen >>"
  964.         LOCATE 11,5:PRINT "Linke Maustaste drÜcken"
  965.         WHILE MOUSE(0)<>-1:WEND
  966.         WINDOW CLOSE 6
  967.         WINDOW 5
  968.         RETURN
  969.       END IF
  970.       BEEP:BEEP
  971.       LOCATE 10,5:PRINT "Adresse wirklich Löschen ?? (J/N)
  972.       warte$=""
  973.       WHILE warte$="":warte$=INKEY$:WEND
  974.       IF warte$="J" OR warte$="j" THEN
  975.         FOR zaehler=1 TO 6
  976.           eadr$(zaehler)=CHR$(13)
  977.         NEXT zaehler
  978.         eingindex=l
  979.         GOSUB AufDatei
  980.         LOCATE 11,5:PRINT "Adresse ist gelöscht"
  981.        ELSE
  982.         LOCATE 11,5:PRINT "Adresse ist nicht gelöscht"
  983.       END IF
  984.       BEEP
  985.       FOR warte=1 TO 7000:NEXT
  986.       WINDOW CLOSE 6
  987.       WINDOW 5                          
  988.       RETURN
  989.     END IF
  990.         
  991.     IF mep=6 THEN
  992.     dr:
  993.       adrdrucken=1
  994.       FOR l1=1 TO index-1
  995.         GET #4,l1
  996.         GOSUB Adrkorr 
  997.         datler=0
  998.         GOSUB LerDatei
  999.         FOR zu=1 TO 6
  1000.           saveadr$(zu)=helpadr$(zu)
  1001.         NEXT zu          
  1002.         helpadr$(7)=helpadr$(2)+" "+helpadr$(3)
  1003.         IF LEN(helpadr$(7)) > (tebreite-lirand-rerand) THEN
  1004.           helptextlaenge=(tebreite-lirand-rerand-2)-LEN(helpadr$(3))
  1005.           IF helptextlaenge<0 THEN helptextlaenge=0
  1006.           helpadr$(2)=LEFT$(helpadr$(2),helptextlaenge)+"."
  1007.           helpadr$(7)=helpadr$(2)+" "+helpadr$(3)
  1008.         END IF          
  1009.         helpadr$(2)=helpadr$(7)            
  1010.         helpadr$(3)=helpadr$(4)
  1011.         helpadr$(4)=helpadr$(5)
  1012.         helpadr$(5)=helpadr$(6) 
  1013.         IF datler=1 THEN                 
  1014.           i=leroben+1
  1015.           FOR in=1 TO 4          
  1016.             drucktext$(i)=LEFT$(helpadr$(in),tebreite-lirand-rerand)
  1017.             GOSUB DrSonderzeichen
  1018.             text$(i)=LEFT$(helpadr$(in),tebreite-lirand-rerand)
  1019.             staus=1
  1020.             GOSUB schreiben1
  1021.             staus=0
  1022.             i=i+1
  1023.           NEXT in      
  1024.           GOSUB drucken 
  1025.           GOSUB format
  1026.         END IF
  1027.         FOR zu=1 TO 6
  1028.           helpadr$(zu)=saveadr$(zu)
  1029.         NEXT zu            
  1030.       NEXT l1
  1031.       i=leroben+1
  1032.       adrdrucken=0
  1033.       COLOR 2,1      
  1034.       RETURN a
  1035.     END IF
  1036.   END IF
  1037.     
  1038.   IF men=2 THEN
  1039.     such=mep
  1040.     FOR tu=1 TO 6
  1041.       MENU 2,tu,1
  1042.     NEXT tu  
  1043.     IF mep=1 THEN suchstring$="die Kundennummer":MENU 2,1,2
  1044.     IF mep=2 THEN suchstring$="den Vornamen":MENU 2,2,2
  1045.     IF mep=3 THEN suchstring$="den Nachnamen":MENU 2,3,2
  1046.     IF mep=4 THEN suchstring$="die Strasse":MENU 2,4,2
  1047.     IF mep=5 THEN suchstring$="den Ort":MENU 2,5,2
  1048.     IF mep=6 THEN suchstring$="die Telefonnummer":MENU 2,6,2
  1049.   END IF
  1050. RETURN
  1051.  
  1052. HelpPrg:
  1053.  
  1054. DrSonderzeichen:
  1055.   drt$=""
  1056.   altp=p
  1057.   p=1
  1058.   FOR zu=1 TO LEN(drucktext$(i))
  1059.     druck$(p)=MID$(drucktext$(i),zu,1)
  1060.     GOSUB Sonderzeichen
  1061.     drt$=drt$+druck$(p)
  1062.   NEXT zu
  1063.   drucktext$(i)=drt$
  1064.   p=altp
  1065. RETURN    
  1066.  
  1067. AufDatei:
  1068.   FOR zaehler =1 TO 6
  1069.     LSET adr$(zaehler)=eadr$(zaehler)
  1070.   NEXT zaehler  
  1071.   PUT #4,eingindex
  1072. RETURN
  1073.  
  1074. VonDatei:
  1075.  
  1076. RETURN
  1077.  
  1078. AdrListe:
  1079.   WINDOW 6,adrtitel$,(145,30)-(495,140),0,1
  1080.   PRINT "Kunden.Nr.:"
  1081.   PRINT "Vorname   :"
  1082.   PRINT "Nachname  :"
  1083.   PRINT "Strasse   :"
  1084.   PRINT "Ort       :"
  1085.   PRINT "Tel.Nr    :"
  1086. RETURN  
  1087.  
  1088. LerDatei:
  1089.   FOR tu=1 TO 6
  1090.     IF helpadr$(tu)<>"" THEN datler=1
  1091.   NEXT tu  
  1092. RETURN
  1093.     
  1094. Adrkorr:
  1095.   FOR korr=1 TO 6
  1096.     stringpos=0
  1097.     WHILE helpstr$<>CHR$(13)
  1098.       stringpos=stringpos+1
  1099.       helpstr$=MID$(adr$(korr),stringpos,1)
  1100.       helpstr1$=helpstr1$+helpstr$
  1101.     WEND
  1102.     adrlen=LEN(helpstr1$)-1
  1103.     helpadr$(korr)=LEFT$(helpstr1$,adrlen)
  1104.     helpstr$="":helpstr1$=""
  1105.   NEXT korr
  1106. RETURN
  1107.     
  1108. einga:
  1109. p=1:a$(1)=""
  1110. ab:
  1111. WHILE a$(p)=""
  1112.  a$(p)=INKEY$
  1113.  x1=POS(u)*8:y1=CSRLIN*8
  1114.  LINE (x1-7,y1-1)-(x1-1,y1-1),,bf
  1115. WEND
  1116. LINE (x1-7,y1-1)-(x1-1,y1-1),col,bf
  1117. IF a$(p)=CHR$(8) THEN
  1118.   LINE (x1-7,y1-1)-(x1-1,y1-1),col,bf
  1119.   a$(p)="":a$(p-1)=""
  1120.   p=p-1
  1121.     IF p<1 THEN
  1122.       p=1
  1123.       GOTO ab
  1124.     END IF
  1125.   LOCATE CSRLIN,POS(u) :PRINT CHR$(8);
  1126.   GOTO ab
  1127. END IF
  1128. IF a$(p)>CHR$(27) AND a$(p)<CHR$(32) THEN                      'Pfeile
  1129.   a$(p)=""
  1130.   GOTO ab                 
  1131. END IF 
  1132. IF a$(p)=CHR$(9) AND men<>1 AND mep<>2 THEN                    'TAB
  1133.   a$(p)=""
  1134.   GOTO ab                 
  1135. END IF 
  1136. IF a$(1)=CHR$(139) THEN                                        'HELP
  1137.   a$(p)=""
  1138.   GOTO ab                 
  1139. END IF
  1140. IF a$(p) >= CHR$(129) AND a$(p) <=CHR$(138) AND p>1 THEN 
  1141.   a$(p)=""
  1142.   GOTO ab                 
  1143. END IF   
  1144. IF a$(p) >= CHR$(129) AND a$(p) <=CHR$(138) AND p>1 THEN 
  1145.   a$(p)=CHR$(13)
  1146.   GOTO ab                 
  1147. END IF    
  1148. IF a$(1) >= CHR$(129) AND a$(1) <=CHR$(138) THEN 
  1149.     erg$=LEFT$(ftext$(ASC(a$(1))-129),laeng%)             'F-Tasten
  1150.     derg$=LEFT$(fdrucktext$(ASC(a$(1))-129),laeng%)
  1151.   GOTO wei1
  1152. END IF   
  1153. IF a$(1)=CHR$(27) THEN GOTO ende                           'ESC
  1154. IF a$(p)=CHR$(13) THEN GOTO wei
  1155. IF p>laeng% THEN
  1156.   a$(p)=""
  1157.   BEEP
  1158.   LINE (x1-7,y1-1)-(x1-1,y1-1),0,bf
  1159.   GOTO ab
  1160. END IF
  1161. druck$(p)=a$(p)
  1162. GOSUB Sonderzeichen
  1163. IF normalPrint=0 THEN CALL SetDrMd&(WINDOW(8),0) 
  1164. PRINT a$(p);
  1165. CALL SetDrMd&(WINDOW(8),1)     
  1166. p=p+1
  1167. GOTO ab
  1168.  
  1169. wei:
  1170. zw$="":dzw$=""
  1171. FOR x=1 TO p
  1172.   zw$=LEFT$(zw$,x)+a$(x)
  1173.   dzw$=LEFT$(dzw$,x)+druck$(x)
  1174. NEXT
  1175. erg$=LEFT$(zw$,p)
  1176. derg$=LEFT$(dzw$,p)
  1177. LINE (x1-7,y1-1)-(x1-1,y1-1),0,bf
  1178. wei1:
  1179. FOR s=1 TO p
  1180.   a$(s)=""
  1181.   druck$(s)=""
  1182. NEXT
  1183. RETURN    
  1184.  
  1185. Sonderzeichen:
  1186.   IF druck$(p)="ö" THEN druck$(p) = CHR$(124)
  1187.   IF druck$(p)="Ö" THEN druck$(p) = CHR$(92)
  1188.   IF druck$(p)="ä" THEN druck$(p) = CHR$(123)
  1189.   IF druck$(p)="Ä" THEN druck$(p) = CHR$(91)
  1190.   IF druck$(p)="ü" THEN druck$(p) = CHR$(125)
  1191.   IF druck$(p)="Ü" THEN druck$(p) = CHR$(93)
  1192.   IF druck$(p)="ß" THEN druck$(p) = CHR$(126)                                       
  1193. RETURN   
  1194.  
  1195. SUB STYLE(STYLE%) STATIC  
  1196.   bits&=AskSoftStyle&(WINDOW(8))
  1197.   newStyle&=SetSoftStyle&(WINDOW(8),STYLE%,bits&)
  1198. END SUB  
  1199.  
  1200.